<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script>
    /**
     * 量词
     *  -通过量词可以设置一个内容出现的次数
     *  -量词只对它前面的一个内容起作用：/ab{3}/ :匹配b出现3次
     *  -{n} 正好出现n次
     *  -{m,n} 出现m-n次
     *  -{m,} 出现m次以上
     *  - + 至少出现1次
     *  - * 匹配0次或者多次
     *  - ? 匹配0次或者1次
     */

        //匹配a连续出现3次
    var reg = /a{3}/
    console.log(reg.test("aaa")) //true

    // 匹配b出现3次
    reg = /ab{3}c/;
    console.log(reg.test("abbbc")) //true

    //匹配ab出现3次
    reg = /(ab){3}/
    console.log(reg.test("ababab")) //true

    //匹配ab连续出现1-3次
    reg = /ab{1,3}c/
    console.log(reg.test("abbbc"))

    //匹配ab连续出现1次以上
    reg = /ab+c/
    console.log(reg.test("abc"))

    //匹配ab连续出现0次或者多次
    reg = /ab*/
    console.log(reg.test("ab"))

    //匹配ab连续出现0次或者1次
    reg = /ab?/
    console.log(reg.test("ab"))

    /**
     * 检查a开头
     * ^ 表示开头
     * $ 表示结尾
     * ^ & 必须完全匹配
     */
    reg = /^a/  //匹配a开头
    console.log(reg.test("abc"))
    reg = /a$/  //匹配a结尾
    console.log(reg.test("abc"))
    reg = /^a$/  //匹配a开头结尾,只会有一个
    console.log(reg.test("a"))
    reg = /^a|a$/ //匹配a开头或者a结尾
    console.log(reg.test("bba"))


    /**
     * 创建一个字符串是否是一个手机号
     *
     * 手机号规则
     *   17586380418  （11位）
     *
     *   1. 1 开头       ^1
     *   2.第二位 为3-9任意数字     [3-9]
     *   3.三位以后为0-9任意数字9个    [0-9]{9}$
     */

    var phoneStr = "12586380418";
    var phoneReg = /^1[3-9][0-9]{9}$/
    console.log(phoneReg.test(phoneStr))


    /**
     * 检查是否含有 .
     *  . 表示任意字符
     *  在正则表达式中使用\ 来转义.
     *  \. 表示 .
     *  \\ 表示 \
     */
    // .
    var reg = /\./
    console.log(reg.test(".b"))

    // \
    reg = /\\/
    console.log(reg.test("\\"))

    reg = new RegExp("\.")
    console.log(reg.test(".b"))
    /**
     * \W 除了字母、数字、_
     * \w 任意字母、数字、_
     * \D 除了数字
     * \d 数字
     * \S 除了空格
     * \s 空格
     * \B 非单词边界
     * \b 单词边界
     *
     */



</script>
</body>
</html>
